package cn.bytets.rpc.common.timer;

/**
 * 与 {@link TimerTask} 关联的句柄，该句柄由 {@link Timer} 返回。
 */
public interface Timeout {
    /**
     * 返回创建此句柄的 {@link Timer}。
     * @return
     */
    Timer timer();
    /**
     * 返回时间轮执行的任务
     */
    TimerTask task();

    /**
     * 判断此{@link TimerTask}是否过期
     */
    boolean isExpired();

    /**
     * 判断此{@link TimerTask}是否取消
     */
    boolean isCancelled();

    /**
     * 取消{@link TimerTask}
     *
     * @return 如果成功则返回ture,否则false
     */
    boolean cancel();
}
